home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / a_utils / yacc / flexyacc / aflex.lha / aflex / src / ultrix / aflex.a
Text File  |  1993-05-31  |  5KB  |  126 lines

  1.  
  2. -- TITLE aflex - main program  
  3. --  
  4. -- AUTHOR: John Self (UCI)  
  5. -- DESCRIPTION main subprogram of aflex, calls the major routines in order  
  6. -- $Header: /co/ua/self/arcadia/aflex/ada/src/RCS/aflex.a,v 1.11 90/10/15 20:00:40 self Exp Locker: self $   
  7. --***************************************************************************   
  8. --                              aflex  
  9. --                          version 1.3a  
  10. --***************************************************************************  
  11. --  
  12. --                            Arcadia Project  
  13. --               Department of Information and Computer Science  
  14. --                        University of California  
  15. --                        Irvine, California 92717  
  16. --  
  17. --    Send requests for aflex information to alex-info@ics.uci.edu  
  18. --  
  19. --    Send bug reports for aflex to alex-bugs@ics.uci.edu  
  20. --  
  21. -- Copyright (c) 1990 Regents of the University of California.  
  22. -- All rights reserved.  
  23. --  
  24. -- This software was developed by John Self of the Arcadia project  
  25. -- at the University of California, Irvine.  
  26. --  
  27. -- Redistribution and use in source and binary forms are permitted  
  28. -- provided that the above copyright notice and this paragraph are  
  29. -- duplicated in all such forms and that any documentation,  
  30. -- advertising materials, and other materials related to such  
  31. -- distribution and use acknowledge that the software was developed  
  32. -- by the University of California, Irvine.  The name of the  
  33. -- University may not be used to endorse or promote products derived  
  34. -- from this software without specific prior written permission.  
  35. -- THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR  
  36. -- IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED  
  37. -- WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.  
  38. --  
  39. --    This program is based on the flex program written by Vern Paxson.  
  40. --  
  41. --    The following is the copyright notice from flex, from which aflex is  
  42. --    derived.  
  43. --    Copyright (c) 1989 The Regents of the University of California.  
  44. --    All rights reserved.  
  45. --  
  46. --    This code is derived from software contributed to Berkeley by  
  47. --    Vern Paxson.  
  48. --  
  49. --      The United States Government has rights in this work pursuant to  
  50. --    contract no. DE-AC03-76SF00098 between the United States Department of  
  51. --    Energy and the University of California.  
  52. --  
  53. --    Redistribution and use in source and binary forms are permitted  
  54. --    provided that the above copyright notice and this paragraph are  
  55. --    duplicated in all such forms and that any documentation,  
  56. --    advertising materials, and other materials related to such  
  57. --    distribution and use acknowledge that the software was developed  
  58. --    by the University of California, Berkeley.  The name of the  
  59. --    University may not be used to endorse or promote products derived  
  60. --    from this software without specific prior written permission.  
  61. --    THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR  
  62. --    IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED  
  63. --    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  
  64. --  
  65. --*****************setenvduplicaduplicad*  
  66.  
  67. with MAIN_BODY, DFA, GEN, MISC_DEFS, TEXT_IO, MISC;   
  68. with TSTRING, TEMPLATE_MANAGER, EXTERNAL_FILE_MANAGER; use MISC_DEFS, TEXT_IO,   
  69.   TSTRING, EXTERNAL_FILE_MANAGER;   
  70. --/ if DEC then  
  71. function AFLEX return INTEGER is   
  72. --/ elsif Systeam then  
  73. --// procedure AFLEX is  
  74. --/ else  
  75. --// function AFLEX return INTEGER is   
  76. --/ end if;  
  77.     copyright : constant string :=  
  78.     "@(#) Copyright (c) 1990 Regents of the University of California.";  
  79.         copyright2 : constant string :=  
  80.     "All rights reserved.";  
  81. begin  
  82.   MAIN_BODY.AFLEXINIT;   
  83.  
  84.   MAIN_BODY.READIN;   
  85.  
  86.   if (SYNTAXERROR) then   
  87.     MAIN_BODY.AFLEXEND(1);   
  88.   end if;   
  89.  
  90.   if (PERFORMANCE_REPORT) then   
  91.     if (INTERACTIVE) then   
  92.       TEXT_IO.PUT_LINE(STANDARD_ERROR,   
  93.         "-I (interactive) entails a minor performance penalty");   
  94.     end if;   
  95.  
  96.  
  97.   end if;   
  98.  
  99.   if (VARIABLE_TRAILING_CONTEXT_RULES) then   
  100.     MISC.AFLEXERROR("can't handle variable trailing context rules");   
  101.   end if;   
  102.  
  103.   -- convert the ndfa to a dfa  
  104.   DFA.NTOD;   
  105.  
  106.   -- generate the Ada state transition tables from the DFA  
  107.   GEN.MAKE_TABLES;   
  108.  
  109.   TEMPLATE_MANAGER.GENERATE_IO_FILE;   
  110.   TEMPLATE_MANAGER.GENERATE_DFA_FILE;   
  111.   MAIN_BODY.AFLEXEND(0);  
  112.   --/ if not Systeam then -- No way to return a status code with Systeam?   
  113.   return 0;   
  114.   --/ end if;  
  115. exception  
  116.   when MAIN_BODY.AFLEX_TERMINATE =>   
  117.   --/ if not Systeam then -- No way to return a status code with Systeam?   
  118.     return MAIN_BODY.TERMINATION_STATUS;   
  119.   --/ else  
  120. --//     null;  
  121.   --/ end if;  
  122. end AFLEX;   
  123.  
  124.    
  125.  
  126. es a private type; therefore, these